.class public Landroid/text/StaticLayout;
.super Landroid/text/Layout;
.source "StaticLayout.java"


# static fields
.field private static final COLUMNS_ELLIPSIZE:I = 0x5

.field private static final COLUMNS_NORMAL:I = 0x3

.field private static final DESCENT:I = 0x2

.field private static final DIR:I = 0x0

.field private static final DIR_MASK:I = -0x40000000

.field private static final DIR_SHIFT:I = 0x1e

.field private static final ELLIPSIS_COUNT:I = 0x4

.field private static final ELLIPSIS_START:I = 0x3

.field private static final FIRST_CJK:C = '\u2e80'

.field private static final FIRST_RIGHT_TO_LEFT:C = '\u0590'

.field private static final START:I = 0x0

.field private static final START_MASK:I = 0x1fffffff

.field private static final TAB:I = 0x0

.field private static final TAB_MASK:I = 0x20000000

.field private static final TOP:I = 0x1


# instance fields
.field private mBottomPadding:I

.field private mChdirs:[B

.field private mChs:[C

.field private mColumns:I

.field private mEllipsizedWidth:I

.field private mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

.field private mLineCount:I

.field private mLineDirections:[Landroid/text/Layout$Directions;

.field private mLines:[I

.field private mTopPadding:I

.field private mWidths:[F


# direct methods
.method public constructor <init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
    .registers 22
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"

    .prologue
    .line 54
    const/4 v10, 0x0

    const/4 v11, 0x0

    move-object v0, p0

    move-object v1, p1

    move v2, p2

    move v3, p3

    move-object/from16 v4, p4

    move/from16 v5, p5

    move-object/from16 v6, p6

    move/from16 v7, p7

    move/from16 v8, p8

    move/from16 v9, p9

    invoke-direct/range {v0 .. v11}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V

    .line 56
    return-void
.end method

.method public constructor <init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V
    .registers 29
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"
    .parameter "ellipsize"
    .parameter "ellipsizedWidth"

    .prologue
    .line 64
    if-nez p10, :cond_a3

    move-object/from16 v3, p1

    :goto_4
    move-object/from16 v2, p0

    move-object/from16 v4, p4

    move/from16 v5, p5

    move-object/from16 v6, p6

    move/from16 v7, p7

    move/from16 v8, p8

    invoke-direct/range {v2 .. v8}, Landroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V

    .line 1319
    new-instance v2, Landroid/graphics/Paint$FontMetricsInt;

    invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;-><init>()V

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 79
    if-eqz p10, :cond_c0

    .line 80
    invoke-virtual/range {p0 .. p0}, Landroid/text/StaticLayout;->getText()Ljava/lang/CharSequence;

    move-result-object v16

    check-cast v16, Landroid/text/Layout$Ellipsizer;

    .line 82
    .local v16, e:Landroid/text/Layout$Ellipsizer;
    move-object/from16 v0, p0

    move-object/from16 v1, v16

    iput-object v0, v1, Landroid/text/Layout$Ellipsizer;->mLayout:Landroid/text/Layout;

    .line 83
    move/from16 v0, p11

    move-object/from16 v1, v16

    iput v0, v1, Landroid/text/Layout$Ellipsizer;->mWidth:I

    .line 84
    move-object/from16 v0, p10

    move-object/from16 v1, v16

    iput-object v0, v1, Landroid/text/Layout$Ellipsizer;->mMethod:Landroid/text/TextUtils$TruncateAt;

    .line 85
    move/from16 v0, p11

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    .line 87
    const/4 v2, 0x5

    move v0, v2

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mColumns:I

    .line 93
    .end local v16           #e:Landroid/text/Layout$Ellipsizer;
    :goto_43
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v2, v0

    mul-int/lit8 v2, v2, 0x2

    invoke-static {v2}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v2

    new-array v2, v2, [I

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLines:[I

    .line 94
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v2, v0

    mul-int/lit8 v2, v2, 0x2

    invoke-static {v2}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v2

    new-array v2, v2, [Landroid/text/Layout$Directions;

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 97
    if-eqz p10, :cond_ce

    const/4 v2, 0x1

    move v13, v2

    :goto_6b
    move/from16 v0, p11

    int-to-float v0, v0

    move v14, v0

    move-object/from16 v2, p0

    move-object/from16 v3, p1

    move/from16 v4, p2

    move/from16 v5, p3

    move-object/from16 v6, p4

    move/from16 v7, p5

    move-object/from16 v8, p6

    move/from16 v9, p7

    move/from16 v10, p8

    move/from16 v11, p9

    move/from16 v12, p9

    move-object/from16 v15, p10

    invoke-virtual/range {v2 .. v15}, Landroid/text/StaticLayout;->generate(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZZZFLandroid/text/TextUtils$TruncateAt;)V

    .line 101
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 102
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 103
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 104
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 105
    return-void

    .line 64
    :cond_a3
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v2, v0

    if-eqz v2, :cond_b5

    new-instance v2, Landroid/text/Layout$SpannedEllipsizer;

    move-object v0, v2

    move-object/from16 v1, p1

    invoke-direct {v0, v1}, Landroid/text/Layout$SpannedEllipsizer;-><init>(Ljava/lang/CharSequence;)V

    move-object v3, v2

    goto/16 :goto_4

    :cond_b5
    new-instance v2, Landroid/text/Layout$Ellipsizer;

    move-object v0, v2

    move-object/from16 v1, p1

    invoke-direct {v0, v1}, Landroid/text/Layout$Ellipsizer;-><init>(Ljava/lang/CharSequence;)V

    move-object v3, v2

    goto/16 :goto_4

    .line 89
    :cond_c0
    const/4 v2, 0x3

    move v0, v2

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mColumns:I

    .line 90
    move/from16 v0, p5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    goto/16 :goto_43

    .line 97
    :cond_ce
    const/4 v2, 0x0

    move v13, v2

    goto :goto_6b
.end method

.method public constructor <init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
    .registers 18
    .parameter "source"
    .parameter "paint"
    .parameter "width"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"

    .prologue
    .line 45
    const/4 v2, 0x0

    invoke-interface {p1}, Ljava/lang/CharSequence;->length()I

    move-result v3

    move-object v0, p0

    move-object v1, p1

    move-object v4, p2

    move v5, p3

    move-object v6, p4

    move v7, p5

    move/from16 v8, p6

    move/from16 v9, p7

    invoke-direct/range {v0 .. v9}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V

    .line 47
    return-void
.end method

.method constructor <init>(Z)V
    .registers 9
    .parameter "ellipsize"

    .prologue
    const/4 v5, 0x0

    const/4 v1, 0x0

    .line 108
    const/4 v3, 0x0

    move-object v0, p0

    move-object v2, v1

    move-object v4, v1

    move v6, v5

    invoke-direct/range {v0 .. v6}, Landroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V

    .line 1319
    new-instance v0, Landroid/graphics/Paint$FontMetricsInt;

    invoke-direct {v0}, Landroid/graphics/Paint$FontMetricsInt;-><init>()V

    iput-object v0, p0, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 110
    const/4 v0, 0x5

    iput v0, p0, Landroid/text/StaticLayout;->mColumns:I

    .line 111
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/lit8 v0, v0, 0x2

    invoke-static {v0}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v0

    new-array v0, v0, [I

    iput-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    .line 112
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/lit8 v0, v0, 0x2

    invoke-static {v0}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v0

    new-array v0, v0, [Landroid/text/Layout$Directions;

    iput-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 114
    return-void
.end method

.method private calculateEllipsis(II[FIIFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;)V
    .registers 29
    .parameter "linestart"
    .parameter "lineend"
    .parameter "widths"
    .parameter "widstart"
    .parameter "widoff"
    .parameter "avail"
    .parameter "where"
    .parameter "line"
    .parameter "textwidth"
    .parameter "paint"

    .prologue
    .line 1126
    sub-int v8, p2, p1

    .line 1128
    .local v8, len:I
    cmpg-float v15, p9, p6

    if-gtz v15, :cond_2d

    .line 1130
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x3

    const/16 v17, 0x0

    aput v17, v15, v16

    .line 1131
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x4

    const/16 v17, 0x0

    aput v17, v15, v16

    .line 1202
    :goto_2c
    return-void

    .line 1135
    :cond_2d
    const-string v15, "\u2026"

    move-object/from16 v0, p10

    move-object v1, v15

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->measureText(Ljava/lang/String;)F

    move-result v4

    .line 1138
    .local v4, ellipsiswid:F
    sget-object v15, Landroid/text/TextUtils$TruncateAt;->START:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-ne v0, v1, :cond_7c

    .line 1139
    const/4 v13, 0x0

    .line 1142
    .local v13, sum:F
    move v5, v8

    .local v5, i:I
    :goto_3f
    if-ltz v5, :cond_53

    .line 1143
    const/4 v15, 0x1

    sub-int v15, v5, v15

    add-int v15, v15, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1145
    .local v14, w:F
    add-float v15, v14, v13

    add-float/2addr v15, v4

    cmpl-float v15, v15, p6

    if-lez v15, :cond_78

    .line 1152
    .end local v14           #w:F
    :cond_53
    const/4 v3, 0x0

    .line 1153
    .local v3, ellipsisStart:I
    move v2, v5

    .line 1200
    .end local v5           #i:I
    .end local v13           #sum:F
    .local v2, ellipsisCount:I
    :goto_55
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x3

    aput v3, v15, v16

    .line 1201
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x4

    aput v2, v15, v16

    goto :goto_2c

    .line 1149
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .restart local v5       #i:I
    .restart local v13       #sum:F
    .restart local v14       #w:F
    :cond_78
    add-float/2addr v13, v14

    .line 1142
    add-int/lit8 v5, v5, -0x1

    goto :goto_3f

    .line 1154
    .end local v5           #i:I
    .end local v13           #sum:F
    .end local v14           #w:F
    :cond_7c
    sget-object v15, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-eq v0, v1, :cond_8a

    sget-object v15, Landroid/text/TextUtils$TruncateAt;->MARQUEE:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-ne v0, v1, :cond_a5

    .line 1155
    :cond_8a
    const/4 v13, 0x0

    .line 1158
    .restart local v13       #sum:F
    const/4 v5, 0x0

    .restart local v5       #i:I
    :goto_8c
    if-ge v5, v8, :cond_9d

    .line 1159
    add-int v15, v5, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1161
    .restart local v14       #w:F
    add-float v15, v14, v13

    add-float/2addr v15, v4

    cmpl-float v15, v15, p6

    if-lez v15, :cond_a1

    .line 1168
    .end local v14           #w:F
    :cond_9d
    move v3, v5

    .line 1169
    .restart local v3       #ellipsisStart:I
    sub-int v2, v8, v5

    .line 1170
    .restart local v2       #ellipsisCount:I
    goto :goto_55

    .line 1165
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .restart local v14       #w:F
    :cond_a1
    add-float/2addr v13, v14

    .line 1158
    add-int/lit8 v5, v5, 0x1

    goto :goto_8c

    .line 1171
    .end local v5           #i:I
    .end local v13           #sum:F
    .end local v14           #w:F
    :cond_a5
    const/4 v9, 0x0

    .local v9, lsum:F
    const/4 v12, 0x0

    .line 1172
    .local v12, rsum:F
    const/4 v7, 0x0

    .local v7, left:I
    move v11, v8

    .line 1174
    .local v11, right:I
    sub-float v15, p6, v4

    const/high16 v16, 0x4000

    div-float v10, v15, v16

    .line 1175
    .local v10, ravail:F
    move v11, v8

    :goto_b0
    if-ltz v11, :cond_c3

    .line 1176
    const/4 v15, 0x1

    sub-int v15, v11, v15

    add-int v15, v15, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1178
    .restart local v14       #w:F
    add-float v15, v14, v12

    cmpl-float v15, v15, v10

    if-lez v15, :cond_dd

    .line 1185
    .end local v14           #w:F
    :cond_c3
    sub-float v15, p6, v4

    sub-float v6, v15, v12

    .line 1186
    .local v6, lavail:F
    const/4 v7, 0x0

    :goto_c8
    if-ge v7, v11, :cond_d8

    .line 1187
    add-int v15, v7, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1189
    .restart local v14       #w:F
    add-float v15, v14, v9

    cmpl-float v15, v15, v6

    if-lez v15, :cond_e1

    .line 1196
    .end local v14           #w:F
    :cond_d8
    move v3, v7

    .line 1197
    .restart local v3       #ellipsisStart:I
    sub-int v2, v11, v7

    .restart local v2       #ellipsisCount:I
    goto/16 :goto_55

    .line 1182
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .end local v6           #lavail:F
    .restart local v14       #w:F
    :cond_dd
    add-float/2addr v12, v14

    .line 1175
    add-int/lit8 v11, v11, -0x1

    goto :goto_b0

    .line 1193
    .restart local v6       #lavail:F
    :cond_e1
    add-float/2addr v9, v14

    .line 1186
    add-int/lit8 v7, v7, 0x1

    goto :goto_c8
.end method

.method private static getFit(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IIF)I
    .registers 16
    .parameter "paint"
    .parameter "workPaint"
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "wid"

    .prologue
    const/4 v5, 0x0

    const/4 v6, 0x1

    .line 953
    add-int/lit8 v8, p4, 0x1

    .local v8, high:I
    sub-int v9, p3, v6

    .line 955
    .local v9, low:I
    :goto_6
    sub-int v0, v8, v9

    if-le v0, v6, :cond_1f

    .line 956
    add-int v0, v8, v9

    div-int/lit8 v4, v0, 0x2

    .local v4, guess:I
    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move v3, p3

    move-object v7, v5

    .line 958
    invoke-static/range {v0 .. v7}, Landroid/text/StaticLayout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v0

    cmpl-float v0, v0, p5

    if-lez v0, :cond_1d

    .line 960
    move v8, v4

    goto :goto_6

    .line 962
    :cond_1d
    move v9, v4

    goto :goto_6

    .line 965
    .end local v4           #guess:I
    :cond_1f
    if-ge v9, p3, :cond_23

    move v0, p3

    .line 968
    :goto_22
    return v0

    :cond_23
    move v0, v9

    goto :goto_22
.end method

.method private static final isIdeographic(CZ)Z
    .registers 5
    .parameter "c"
    .parameter "includeNonStarters"

    .prologue
    const/4 v2, 0x0

    const/4 v1, 0x1

    .line 856
    const/16 v0, 0x2e80

    if-lt p0, v0, :cond_c

    const/16 v0, 0x2fff

    if-gt p0, v0, :cond_c

    move v0, v1

    .line 933
    :goto_b
    return v0

    .line 859
    :cond_c
    const/16 v0, 0x3000

    if-ne p0, v0, :cond_12

    move v0, v1

    .line 860
    goto :goto_b

    .line 862
    :cond_12
    const/16 v0, 0x3040

    if-lt p0, v0, :cond_23

    const/16 v0, 0x309f

    if-gt p0, v0, :cond_23

    .line 863
    if-nez p1, :cond_1f

    .line 864
    sparse-switch p0, :sswitch_data_88

    :cond_1f
    move v0, v1

    .line 884
    goto :goto_b

    :sswitch_21
    move v0, v2

    .line 881
    goto :goto_b

    .line 886
    :cond_23
    const/16 v0, 0x30a0

    if-lt p0, v0, :cond_34

    const/16 v0, 0x30ff

    if-gt p0, v0, :cond_34

    .line 887
    if-nez p1, :cond_30

    .line 888
    sparse-switch p0, :sswitch_data_ca

    :cond_30
    move v0, v1

    .line 909
    goto :goto_b

    :sswitch_32
    move v0, v2

    .line 906
    goto :goto_b

    .line 911
    :cond_34
    const/16 v0, 0x3400

    if-lt p0, v0, :cond_3e

    const/16 v0, 0x4db5

    if-gt p0, v0, :cond_3e

    move v0, v1

    .line 912
    goto :goto_b

    .line 914
    :cond_3e
    const/16 v0, 0x4e00

    if-lt p0, v0, :cond_49

    const v0, 0x9fbb

    if-gt p0, v0, :cond_49

    move v0, v1

    .line 915
    goto :goto_b

    .line 917
    :cond_49
    const v0, 0xf900

    if-lt p0, v0, :cond_55

    const v0, 0xfad9

    if-gt p0, v0, :cond_55

    move v0, v1

    .line 918
    goto :goto_b

    .line 920
    :cond_55
    const v0, 0xa000

    if-lt p0, v0, :cond_61

    const v0, 0xa48f

    if-gt p0, v0, :cond_61

    move v0, v1

    .line 921
    goto :goto_b

    .line 923
    :cond_61
    const v0, 0xa490

    if-lt p0, v0, :cond_6d

    const v0, 0xa4cf

    if-gt p0, v0, :cond_6d

    move v0, v1

    .line 924
    goto :goto_b

    .line 926
    :cond_6d
    const v0, 0xfe62

    if-lt p0, v0, :cond_79

    const v0, 0xfe66

    if-gt p0, v0, :cond_79

    move v0, v1

    .line 927
    goto :goto_b

    .line 929
    :cond_79
    const v0, 0xff10

    if-lt p0, v0, :cond_85

    const v0, 0xff19

    if-gt p0, v0, :cond_85

    move v0, v1

    .line 930
    goto :goto_b

    :cond_85
    move v0, v2

    .line 933
    goto :goto_b

    .line 864
    nop

    :sswitch_data_88
    .sparse-switch
        0x3041 -> :sswitch_21
        0x3043 -> :sswitch_21
        0x3045 -> :sswitch_21
        0x3047 -> :sswitch_21
        0x3049 -> :sswitch_21
        0x3063 -> :sswitch_21
        0x3083 -> :sswitch_21
        0x3085 -> :sswitch_21
        0x3087 -> :sswitch_21
        0x308e -> :sswitch_21
        0x3095 -> :sswitch_21
        0x3096 -> :sswitch_21
        0x309b -> :sswitch_21
        0x309c -> :sswitch_21
        0x309d -> :sswitch_21
        0x309e -> :sswitch_21
    .end sparse-switch

    .line 888
    :sswitch_data_ca
    .sparse-switch
        0x30a0 -> :sswitch_32
        0x30a1 -> :sswitch_32
        0x30a3 -> :sswitch_32
        0x30a5 -> :sswitch_32
        0x30a7 -> :sswitch_32
        0x30a9 -> :sswitch_32
        0x30c3 -> :sswitch_32
        0x30e3 -> :sswitch_32
        0x30e5 -> :sswitch_32
        0x30e7 -> :sswitch_32
        0x30ee -> :sswitch_32
        0x30f5 -> :sswitch_32
        0x30f6 -> :sswitch_32
        0x30fb -> :sswitch_32
        0x30fc -> :sswitch_32
        0x30fd -> :sswitch_32
        0x30fe -> :sswitch_32
    .end sparse-switch
.end method

.method private out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I
    .registers 61
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "above"
    .parameter "below"
    .parameter "top"
    .parameter "bottom"
    .parameter "v"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "chooseht"
    .parameter "choosehtv"
    .parameter "fm"
    .parameter "tab"
    .parameter "needMultiply"
    .parameter "pstart"
    .parameter "chdirs"
    .parameter "dir"
    .parameter "easy"
    .parameter "last"
    .parameter "includepad"
    .parameter "trackpad"
    .parameter "widths"
    .parameter "widstart"
    .parameter "widoff"
    .parameter "ellipsize"
    .parameter "ellipsiswidth"
    .parameter "textwidth"
    .parameter "paint"

    .prologue
    .line 982
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mLineCount:I

    move v13, v0

    .line 983
    .local v13, j:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    mul-int v29, v13, v5

    .line 984
    .local v29, off:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v29

    add-int/lit8 v30, v5, 0x1

    .line 985
    .local v30, want:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object/from16 v27, v0

    .line 989
    .local v27, lines:[I
    move-object/from16 v0, v27

    array-length v0, v0

    move v5, v0

    move/from16 v0, v30

    move v1, v5

    if-lt v0, v1, :cond_6a

    .line 990
    add-int/lit8 v5, v30, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v28

    .line 991
    .local v28, nlen:I
    move/from16 v0, v28

    new-array v0, v0, [I

    move-object/from16 v20, v0

    .line 992
    .local v20, grow:[I
    const/4 v5, 0x0

    const/4 v6, 0x0

    move-object/from16 v0, v27

    array-length v0, v0

    move v7, v0

    move-object/from16 v0, v27

    move v1, v5

    move-object/from16 v2, v20

    move v3, v6

    move v4, v7

    invoke-static {v0, v1, v2, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 993
    move-object/from16 v0, v20

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLines:[I

    .line 994
    move-object/from16 v27, v20

    .line 996
    move/from16 v0, v28

    new-array v0, v0, [Landroid/text/Layout$Directions;

    move-object/from16 v21, v0

    .line 997
    .local v21, grow2:[Landroid/text/Layout$Directions;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v5, v0

    const/4 v6, 0x0

    const/4 v7, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v8, v0

    array-length v8, v8

    move-object v0, v5

    move v1, v6

    move-object/from16 v2, v21

    move v3, v7

    move v4, v8

    invoke-static {v0, v1, v2, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 999
    move-object/from16 v0, v21

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 1002
    .end local v20           #grow:[I
    .end local v21           #grow2:[Landroid/text/Layout$Directions;
    .end local v28           #nlen:I
    :cond_6a
    if-eqz p11, :cond_d7

    .line 1003
    move/from16 v0, p4

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 1004
    move/from16 v0, p5

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 1005
    move/from16 v0, p6

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 1006
    move/from16 v0, p7

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 1008
    const/16 v23, 0x0

    .local v23, i:I
    :goto_86
    move-object/from16 v0, p11

    array-length v0, v0

    move v5, v0

    move/from16 v0, v23

    move v1, v5

    if-ge v0, v1, :cond_bf

    .line 1009
    aget-object v5, p11, v23

    instance-of v5, v5, Landroid/text/style/LineHeightSpan$WithDensity;

    if-eqz v5, :cond_ad

    .line 1010
    aget-object v5, p11, v23

    check-cast v5, Landroid/text/style/LineHeightSpan$WithDensity;

    aget v9, p12, v23

    move-object/from16 v6, p1

    move/from16 v7, p2

    move/from16 v8, p3

    move/from16 v10, p8

    move-object/from16 v11, p13

    move-object/from16 v12, p29

    invoke-interface/range {v5 .. v12}, Landroid/text/style/LineHeightSpan$WithDensity;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V

    .line 1008
    :goto_aa
    add-int/lit8 v23, v23, 0x1

    goto :goto_86

    .line 1014
    :cond_ad
    aget-object v5, p11, v23

    aget v9, p12, v23

    move-object/from16 v6, p1

    move/from16 v7, p2

    move/from16 v8, p3

    move/from16 v10, p8

    move-object/from16 v11, p13

    invoke-interface/range {v5 .. v11}, Landroid/text/style/LineHeightSpan;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V

    goto :goto_aa

    .line 1018
    :cond_bf
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 p4, v0

    .line 1019
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 p5, v0

    .line 1020
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 p6, v0

    .line 1021
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 p7, v0

    .line 1024
    .end local v23           #i:I
    :cond_d7
    if-nez v13, :cond_e6

    .line 1025
    if-eqz p22, :cond_e2

    .line 1026
    sub-int v5, p6, p4

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mTopPadding:I

    .line 1029
    :cond_e2
    if-eqz p21, :cond_e6

    .line 1030
    move/from16 p4, p6

    .line 1033
    :cond_e6
    if-eqz p20, :cond_f5

    .line 1034
    if-eqz p22, :cond_f1

    .line 1035
    sub-int v5, p7, p5

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mBottomPadding:I

    .line 1038
    :cond_f1
    if-eqz p21, :cond_f5

    .line 1039
    move/from16 p5, p7

    .line 1045
    :cond_f5
    if-eqz p15, :cond_167

    .line 1046
    sub-int v5, p5, p4

    int-to-float v5, v5

    const/high16 v6, 0x3f80

    sub-float v6, p9, v6

    mul-float/2addr v5, v6

    add-float v5, v5, p10

    float-to-double v5, v5

    const-wide/high16 v7, 0x3fe0

    add-double/2addr v5, v7

    move-wide v0, v5

    double-to-int v0, v0

    move/from16 v19, v0

    .line 1052
    .local v19, extra:I
    :goto_109
    add-int/lit8 v5, v29, 0x0

    aput p2, v27, v5

    .line 1053
    add-int/lit8 v5, v29, 0x1

    aput p8, v27, v5

    .line 1054
    add-int/lit8 v5, v29, 0x2

    add-int v6, p5, v19

    aput v6, v27, v5

    .line 1056
    sub-int v5, p5, p4

    add-int v5, v5, v19

    add-int p8, p8, v5

    .line 1057
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v29

    add-int/lit8 v5, v5, 0x0

    aput p3, v27, v5

    .line 1058
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v29

    add-int/lit8 v5, v5, 0x1

    aput p8, v27, v5

    .line 1060
    if-eqz p14, :cond_13e

    .line 1061
    add-int/lit8 v5, v29, 0x0

    aget v6, v27, v5

    const/high16 v7, 0x2000

    or-int/2addr v6, v7

    aput v6, v27, v5

    .line 1064
    :cond_13e
    add-int/lit8 v5, v29, 0x0

    aget v6, v27, v5

    shl-int/lit8 v7, p18, 0x1e

    or-int/2addr v6, v7

    aput v6, v27, v5

    .line 1066
    const/16 v18, 0x0

    .line 1067
    .local v18, cur:I
    const/16 v16, 0x0

    .line 1069
    .local v16, count:I
    if-nez p19, :cond_16a

    .line 1070
    move/from16 v24, p2

    .local v24, k:I
    :goto_14f
    move/from16 v0, v24

    move/from16 v1, p3

    if-ge v0, v1, :cond_16a

    .line 1071
    sub-int v5, v24, p16

    aget-byte v5, p17, v5

    move v0, v5

    move/from16 v1, v18

    if-eq v0, v1, :cond_164

    .line 1072
    add-int/lit8 v16, v16, 0x1

    .line 1073
    sub-int v5, v24, p16

    aget-byte v18, p17, v5

    .line 1070
    :cond_164
    add-int/lit8 v24, v24, 0x1

    goto :goto_14f

    .line 1049
    .end local v16           #count:I
    .end local v18           #cur:I
    .end local v19           #extra:I
    .end local v24           #k:I
    :cond_167
    const/16 v19, 0x0

    .restart local v19       #extra:I
    goto :goto_109

    .line 1080
    .restart local v16       #count:I
    .restart local v18       #cur:I
    :cond_16a
    if-nez v16, :cond_1a4

    .line 1081
    sget-object v26, Landroid/text/StaticLayout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    .line 1108
    .local v26, linedirs:Landroid/text/Layout$Directions;
    :goto_16e
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v5, v0

    aput-object v26, v5, v13

    .line 1111
    if-eqz p26, :cond_197

    sget-object v5, Landroid/text/TextUtils$TruncateAt;->MARQUEE:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p26

    move-object v1, v5

    if-ne v0, v1, :cond_180

    if-eqz v13, :cond_197

    :cond_180
    move-object/from16 v5, p0

    move/from16 v6, p2

    move/from16 v7, p3

    move-object/from16 v8, p23

    move/from16 v9, p24

    move/from16 v10, p25

    move/from16 v11, p27

    move-object/from16 v12, p26

    move/from16 v14, p28

    move-object/from16 v15, p29

    .line 1112
    invoke-direct/range {v5 .. v15}, Landroid/text/StaticLayout;->calculateEllipsis(II[FIIFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;)V

    .line 1118
    :cond_197
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mLineCount:I

    move v5, v0

    add-int/lit8 v5, v5, 0x1

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mLineCount:I

    .line 1119
    return p8

    .line 1083
    .end local v26           #linedirs:Landroid/text/Layout$Directions;
    :cond_1a4
    add-int/lit8 v5, v16, 0x1

    move v0, v5

    new-array v0, v0, [S

    move-object/from16 v25, v0

    .line 1085
    .local v25, ld:[S
    const/16 v18, 0x0

    .line 1086
    const/16 v16, 0x0

    .line 1087
    move/from16 v22, p2

    .line 1089
    .local v22, here:I
    move/from16 v24, p2

    .restart local v24       #k:I
    move/from16 v17, v16

    .end local v16           #count:I
    .local v17, count:I
    :goto_1b5
    move/from16 v0, v24

    move/from16 v1, p3

    if-ge v0, v1, :cond_1d6

    .line 1090
    sub-int v5, v24, p16

    aget-byte v5, p17, v5

    move v0, v5

    move/from16 v1, v18

    if-eq v0, v1, :cond_1f8

    .line 1093
    add-int/lit8 v16, v17, 0x1

    .end local v17           #count:I
    .restart local v16       #count:I
    sub-int v5, v24, v22

    int-to-short v5, v5

    aput-short v5, v25, v17

    .line 1094
    sub-int v5, v24, p16

    aget-byte v18, p17, v5

    .line 1095
    move/from16 v22, v24

    .line 1089
    :goto_1d1
    add-int/lit8 v24, v24, 0x1

    move/from16 v17, v16

    .end local v16           #count:I
    .restart local v17       #count:I
    goto :goto_1b5

    .line 1099
    :cond_1d6
    sub-int v5, p3, v22

    int-to-short v5, v5

    aput-short v5, v25, v17

    .line 1101
    const/4 v5, 0x1

    move/from16 v0, v17

    move v1, v5

    if-ne v0, v1, :cond_1eb

    const/4 v5, 0x0

    aget-short v5, v25, v5

    if-nez v5, :cond_1eb

    .line 1102
    sget-object v26, Landroid/text/StaticLayout;->DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;

    .restart local v26       #linedirs:Landroid/text/Layout$Directions;
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto :goto_16e

    .line 1104
    .end local v16           #count:I
    .end local v26           #linedirs:Landroid/text/Layout$Directions;
    .restart local v17       #count:I
    :cond_1eb
    new-instance v26, Landroid/text/Layout$Directions;

    move-object/from16 v0, v26

    move-object/from16 v1, v25

    invoke-direct {v0, v1}, Landroid/text/Layout$Directions;-><init>([S)V

    .restart local v26       #linedirs:Landroid/text/Layout$Directions;
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto/16 :goto_16e

    .end local v16           #count:I
    .end local v26           #linedirs:Landroid/text/Layout$Directions;
    .restart local v17       #count:I
    :cond_1f8
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto :goto_1d1
.end method


# virtual methods
.method generate(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZZZFLandroid/text/TextUtils$TruncateAt;)V
    .registers 180
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"
    .parameter "trackpad"
    .parameter "breakOnlyAtSpaces"
    .parameter "ellipsizedWidth"
    .parameter "where"

    .prologue
    .line 123
    const/4 v5, 0x0

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mLineCount:I

    .line 125
    const/16 v20, 0x0

    .line 126
    .local v20, v:I
    const/high16 v5, 0x3f80

    cmpl-float v5, p7, v5

    if-nez v5, :cond_13

    const/4 v5, 0x0

    cmpl-float v5, p8, v5

    if-eqz v5, :cond_c6

    :cond_13
    const/4 v5, 0x1

    move/from16 v27, v5

    .line 128
    .local v27, needMultiply:Z
    :goto_16
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    move-object v11, v0

    .line 129
    .local v11, fm:Landroid/graphics/Paint$FontMetricsInt;
    const/16 v24, 0x0

    .line 131
    .local v24, choosehtv:[I
    const/16 v5, 0xa

    move-object/from16 v0, p1

    move v1, v5

    move/from16 v2, p2

    move/from16 v3, p3

    invoke-static {v0, v1, v2, v3}, Landroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I

    move-result v145

    .line 132
    .local v145, end:I
    if-ltz v145, :cond_cb

    sub-int v5, v145, p2

    move/from16 v137, v5

    .line 133
    .local v137, bufsiz:I
    :goto_30
    const/16 v146, 0x1

    .line 135
    .local v146, first:Z
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChdirs:[B

    move-object v5, v0

    if-nez v5, :cond_62

    .line 136
    add-int/lit8 v5, v137, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealByteArraySize(I)I

    move-result v5

    new-array v5, v5, [B

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 137
    add-int/lit8 v5, v137, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealCharArraySize(I)I

    move-result v5

    new-array v5, v5, [C

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 138
    add-int/lit8 v5, v137, 0x1

    mul-int/lit8 v5, v5, 0x2

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    new-array v5, v5, [F

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 141
    :cond_62
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChdirs:[B

    move-object/from16 v29, v0

    .line 142
    .local v29, chdirs:[B
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChs:[C

    move-object/from16 v140, v0

    .line 143
    .local v140, chs:[C
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWidths:[F

    move-object v10, v0

    .line 145
    .local v10, widths:[F
    const/16 v132, 0x0

    .line 146
    .local v132, alter:Landroid/text/AlteredCharSequence;
    const/4 v7, 0x0

    .line 148
    .local v7, spanned:Landroid/text/Spanned;
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v5, v0

    if-eqz v5, :cond_82

    .line 149
    move-object/from16 v0, p1

    check-cast v0, Landroid/text/Spanned;

    move-object v7, v0

    .line 151
    :cond_82
    const/16 v117, 0x1

    .line 153
    .local v117, DEFAULT_DIR:I
    move/from16 v28, p2

    .local v28, start:I
    :goto_86
    move/from16 v0, v28

    move/from16 v1, p3

    if-gt v0, v1, :cond_8e6

    .line 154
    if-eqz v146, :cond_d1

    .line 155
    const/16 v146, 0x0

    .line 159
    :goto_90
    if-gez v145, :cond_df

    .line 160
    move/from16 v145, p3

    .line 164
    :goto_94
    move/from16 v147, p5

    .line 165
    .local v147, firstwidth:I
    move/from16 v157, p5

    .line 167
    .local v157, restwidth:I
    const/16 v23, 0x0

    .line 169
    .local v23, chooseht:[Landroid/text/style/LineHeightSpan;
    if-eqz v7, :cond_139

    .line 172
    const-class v5, Landroid/text/style/LeadingMarginSpan;

    move-object v0, v7

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v158

    check-cast v158, [Landroid/text/style/LeadingMarginSpan;

    .line 173
    .local v158, sp:[Landroid/text/style/LeadingMarginSpan;
    const/4 v8, 0x0

    .local v8, i:I
    :goto_ab
    move-object/from16 v0, v158

    array-length v0, v0

    move v5, v0

    if-ge v8, v5, :cond_e2

    .line 174
    aget-object v5, v158, v8

    const/4 v6, 0x1

    invoke-interface {v5, v6}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v147, v147, v5

    .line 175
    aget-object v5, v158, v8

    const/4 v6, 0x0

    invoke-interface {v5, v6}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v157, v157, v5

    .line 173
    add-int/lit8 v8, v8, 0x1

    goto :goto_ab

    .line 126
    .end local v7           #spanned:Landroid/text/Spanned;
    .end local v8           #i:I
    .end local v10           #widths:[F
    .end local v11           #fm:Landroid/graphics/Paint$FontMetricsInt;
    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    .end local v24           #choosehtv:[I
    .end local v27           #needMultiply:Z
    .end local v28           #start:I
    .end local v29           #chdirs:[B
    .end local v117           #DEFAULT_DIR:I
    .end local v132           #alter:Landroid/text/AlteredCharSequence;
    .end local v137           #bufsiz:I
    .end local v140           #chs:[C
    .end local v145           #end:I
    .end local v146           #first:Z
    .end local v147           #firstwidth:I
    .end local v157           #restwidth:I
    .end local v158           #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_c6
    const/4 v5, 0x0

    move/from16 v27, v5

    goto/16 :goto_16

    .line 132
    .restart local v11       #fm:Landroid/graphics/Paint$FontMetricsInt;
    .restart local v24       #choosehtv:[I
    .restart local v27       #needMultiply:Z
    .restart local v145       #end:I
    :cond_cb
    sub-int v5, p3, p2

    move/from16 v137, v5

    goto/16 :goto_30

    .line 157
    .restart local v7       #spanned:Landroid/text/Spanned;
    .restart local v10       #widths:[F
    .restart local v28       #start:I
    .restart local v29       #chdirs:[B
    .restart local v117       #DEFAULT_DIR:I
    .restart local v132       #alter:Landroid/text/AlteredCharSequence;
    .restart local v137       #bufsiz:I
    .restart local v140       #chs:[C
    .restart local v146       #first:Z
    :cond_d1
    const/16 v5, 0xa

    move-object/from16 v0, p1

    move v1, v5

    move/from16 v2, v28

    move/from16 v3, p3

    invoke-static {v0, v1, v2, v3}, Landroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I

    move-result v145

    goto :goto_90

    .line 162
    :cond_df
    add-int/lit8 v145, v145, 0x1

    goto :goto_94

    .line 178
    .restart local v8       #i:I
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    .restart local v147       #firstwidth:I
    .restart local v157       #restwidth:I
    .restart local v158       #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_e2
    const-class v5, Landroid/text/style/LineHeightSpan;

    move-object v0, v7

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v23

    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    check-cast v23, [Landroid/text/style/LineHeightSpan;

    .line 180
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    if-eqz v5, :cond_139

    .line 181
    if-eqz v24, :cond_102

    move-object/from16 v0, v24

    array-length v0, v0

    move v5, v0

    move-object/from16 v0, v23

    array-length v0, v0

    move v6, v0

    if-ge v5, v6, :cond_10f

    .line 183
    :cond_102
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [I

    move-object/from16 v24, v0

    .line 187
    :cond_10f
    const/4 v8, 0x0

    :goto_110
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    if-ge v8, v5, :cond_139

    .line 188
    aget-object v5, v23, v8

    invoke-interface {v7, v5}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v155

    .line 190
    .local v155, o:I
    move/from16 v0, v155

    move/from16 v1, v28

    if-ge v0, v1, :cond_136

    .line 194
    move-object/from16 v0, p0

    move/from16 v1, v155

    invoke-virtual {v0, v1}, Landroid/text/StaticLayout;->getLineForOffset(I)I

    move-result v5

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/StaticLayout;->getLineTop(I)I

    move-result v5

    aput v5, v24, v8

    .line 187
    :goto_133
    add-int/lit8 v8, v8, 0x1

    goto :goto_110

    .line 198
    :cond_136
    aput v20, v24, v8

    goto :goto_133

    .line 204
    .end local v8           #i:I
    .end local v155           #o:I
    .end local v158           #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_139
    sub-int v5, v145, v28

    move-object/from16 v0, v29

    array-length v0, v0

    move v6, v0

    if-le v5, v6, :cond_152

    .line 205
    sub-int v5, v145, v28

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealByteArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [B

    move-object/from16 v29, v0

    .line 206
    move-object/from16 v0, v29

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 208
    :cond_152
    sub-int v5, v145, v28

    move-object/from16 v0, v140

    array-length v0, v0

    move v6, v0

    if-le v5, v6, :cond_16b

    .line 209
    sub-int v5, v145, v28

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealCharArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [C

    move-object/from16 v140, v0

    .line 210
    move-object/from16 v0, v140

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 212
    :cond_16b
    sub-int v5, v145, v28

    mul-int/lit8 v5, v5, 0x2

    array-length v6, v10

    if-le v5, v6, :cond_181

    .line 213
    sub-int v5, v145, v28

    mul-int/lit8 v5, v5, 0x2

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    new-array v10, v5, [F

    .line 214
    move-object v0, v10

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 217
    :cond_181
    const/4 v5, 0x0

    move-object/from16 v0, p1

    move/from16 v1, v28

    move/from16 v2, v145

    move-object/from16 v3, v140

    move v4, v5

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V

    .line 218
    sub-int v154, v145, v28

    .line 220
    .local v154, n:I
    const/16 v31, 0x1

    .line 221
    .local v31, easy:Z
    const/16 v133, 0x0

    .line 222
    .local v133, altered:Z
    move/from16 v30, v117

    .line 224
    .local v30, dir:I
    const/4 v8, 0x0

    .restart local v8       #i:I
    :goto_197
    move v0, v8

    move/from16 v1, v154

    if-ge v0, v1, :cond_1a4

    .line 225
    aget-char v5, v140, v8

    const/16 v6, 0x590

    if-lt v5, v6, :cond_1e3

    .line 226
    const/16 v31, 0x0

    .line 231
    :cond_1a4
    if-nez v31, :cond_483

    .line 232
    sub-int v5, v145, v28

    move-object/from16 v0, v140

    move-object/from16 v1, v29

    move v2, v5

    invoke-static {v0, v1, v2}, Landroid/text/AndroidCharacter;->getDirectionalities([C[BI)V

    .line 237
    const/16 v30, 0x1

    .line 238
    move/from16 v152, v28

    .local v152, j:I
    :goto_1b4
    move/from16 v0, v152

    move/from16 v1, v145

    if-ge v0, v1, :cond_1c6

    .line 239
    sub-int v5, v152, v28

    aget-byte v142, v29, v5

    .line 240
    .local v142, d:I
    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_1e6

    .line 241
    const/16 v30, -0x1

    .line 254
    .end local v142           #d:I
    :cond_1c6
    const/4 v5, 0x1

    move/from16 v0, v30

    move v1, v5

    if-ne v0, v1, :cond_1e9

    const/4 v5, 0x0

    move/from16 v129, v5

    .line 261
    .local v129, SOR:B
    :goto_1cf
    const/16 v152, 0x0

    :goto_1d1
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_1f5

    .line 262
    aget-byte v5, v29, v152

    const/4 v6, 0x6

    if-ne v5, v6, :cond_1e0

    .line 263
    if-nez v152, :cond_1ed

    .line 264
    aput-byte v129, v29, v152

    .line 261
    :cond_1e0
    :goto_1e0
    add-int/lit8 v152, v152, 0x1

    goto :goto_1d1

    .line 224
    .end local v129           #SOR:B
    .end local v152           #j:I
    :cond_1e3
    add-int/lit8 v8, v8, 0x1

    goto :goto_197

    .line 238
    .restart local v142       #d:I
    .restart local v152       #j:I
    :cond_1e6
    add-int/lit8 v152, v152, 0x1

    goto :goto_1b4

    .line 254
    .end local v142           #d:I
    :cond_1e9
    const/4 v5, 0x1

    move/from16 v129, v5

    goto :goto_1cf

    .line 266
    .restart local v129       #SOR:B
    :cond_1ed
    const/4 v5, 0x1

    sub-int v5, v152, v5

    aget-byte v5, v29, v5

    aput-byte v5, v29, v152

    goto :goto_1e0

    .line 273
    :cond_1f5
    move/from16 v141, v129

    .line 274
    .local v141, cur:B
    const/16 v152, 0x0

    :goto_1f9
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_224

    .line 275
    aget-byte v142, v29, v152

    .line 277
    .local v142, d:B
    if-eqz v142, :cond_20f

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_20f

    const/4 v5, 0x2

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_214

    .line 280
    :cond_20f
    move/from16 v141, v142

    .line 274
    :cond_211
    :goto_211
    add-int/lit8 v152, v152, 0x1

    goto :goto_1f9

    .line 281
    :cond_214
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_211

    .line 282
    const/4 v5, 0x2

    move/from16 v0, v141

    move v1, v5

    if-ne v0, v1, :cond_211

    .line 284
    const/4 v5, 0x6

    aput-byte v5, v29, v152

    goto :goto_211

    .line 291
    .end local v142           #d:B
    :cond_224
    const/16 v152, 0x0

    :goto_226
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_237

    .line 292
    aget-byte v5, v29, v152

    const/4 v6, 0x2

    if-ne v5, v6, :cond_234

    .line 293
    const/4 v5, 0x1

    aput-byte v5, v29, v152

    .line 291
    :cond_234
    add-int/lit8 v152, v152, 0x1

    goto :goto_226

    .line 299
    :cond_237
    const/16 v152, 0x1

    :goto_239
    const/4 v5, 0x1

    sub-int v5, v154, v5

    move/from16 v0, v152

    move v1, v5

    if-ge v0, v1, :cond_2cc

    .line 300
    aget-byte v142, v29, v152

    .line 301
    .restart local v142       #d:B
    const/4 v5, 0x1

    sub-int v5, v152, v5

    aget-byte v156, v29, v5

    .line 302
    .local v156, prev:B
    add-int/lit8 v5, v152, 0x1

    aget-byte v9, v29, v5

    .line 304
    .local v9, next:B
    aget-char v138, v140, v152

    .line 305
    .local v138, c:C
    add-int/lit8 v5, v152, 0x1

    aget-char v139, v140, v5

    .line 307
    .local v139, cc:C
    const/4 v5, 0x4

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_267

    .line 308
    const/4 v5, 0x3

    move/from16 v0, v156

    move v1, v5

    if-ne v0, v1, :cond_264

    const/4 v5, 0x3

    if-ne v9, v5, :cond_264

    .line 310
    const/4 v5, 0x3

    aput-byte v5, v29, v152

    .line 299
    :cond_264
    :goto_264
    add-int/lit8 v152, v152, 0x1

    goto :goto_239

    .line 311
    :cond_267
    const/4 v5, 0x7

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_29b

    .line 312
    const/4 v5, 0x3

    move/from16 v0, v156

    move v1, v5

    if-ne v0, v1, :cond_279

    const/4 v5, 0x3

    if-ne v9, v5, :cond_279

    .line 314
    const/4 v5, 0x3

    aput-byte v5, v29, v152

    .line 315
    :cond_279
    const/4 v5, 0x6

    move/from16 v0, v156

    move v1, v5

    if-ne v0, v1, :cond_285

    const/4 v5, 0x6

    if-ne v9, v5, :cond_285

    .line 317
    const/4 v5, 0x6

    aput-byte v5, v29, v152

    .line 319
    :cond_285
    const/16 v5, 0x20

    move/from16 v0, v139

    move v1, v5

    if-ne v0, v1, :cond_264

    const/4 v5, 0x3

    move/from16 v0, v156

    move v1, v5

    if-eq v0, v1, :cond_298

    const/4 v5, 0x6

    move/from16 v0, v156

    move v1, v5

    if-ne v0, v1, :cond_264

    .line 322
    :cond_298
    aput-byte v129, v29, v152

    goto :goto_264

    .line 325
    :cond_29b
    const/16 v5, 0x20

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_264

    move/from16 v0, v156

    move/from16 v1, v129

    if-eq v0, v1, :cond_264

    const/4 v5, 0x3

    if-eq v9, v5, :cond_2ae

    const/4 v5, 0x6

    if-ne v9, v5, :cond_264

    .line 328
    :cond_2ae
    aput-byte v129, v29, v152

    .line 329
    add-int/lit8 v153, v152, 0x1

    .local v153, k:I
    :goto_2b2
    move/from16 v0, v153

    move/from16 v1, v154

    if-ge v0, v1, :cond_264

    .line 330
    aget-byte v5, v29, v153

    if-nez v5, :cond_2c0

    .line 331
    const/4 v5, 0x0

    aput-byte v5, v29, v152

    goto :goto_264

    .line 334
    :cond_2c0
    aget-byte v5, v29, v153

    const/4 v6, 0x1

    if-ne v5, v6, :cond_2c9

    .line 335
    const/4 v5, 0x1

    aput-byte v5, v29, v152

    goto :goto_264

    .line 329
    :cond_2c9
    add-int/lit8 v153, v153, 0x1

    goto :goto_2b2

    .line 344
    .end local v9           #next:B
    .end local v138           #c:C
    .end local v139           #cc:C
    .end local v142           #d:B
    .end local v153           #k:I
    .end local v156           #prev:B
    :cond_2cc
    const/16 v131, 0x0

    .line 345
    .local v131, adjacent:Z
    const/16 v152, 0x0

    :goto_2d0
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_2f2

    .line 346
    aget-byte v142, v29, v152

    .line 348
    .restart local v142       #d:B
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_2e3

    .line 349
    const/16 v131, 0x1

    .line 345
    :goto_2e0
    add-int/lit8 v152, v152, 0x1

    goto :goto_2d0

    .line 350
    :cond_2e3
    const/4 v5, 0x5

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_2ef

    if-eqz v131, :cond_2ef

    .line 351
    const/4 v5, 0x3

    aput-byte v5, v29, v152

    goto :goto_2e0

    .line 353
    :cond_2ef
    const/16 v131, 0x0

    goto :goto_2e0

    .line 360
    .end local v142           #d:B
    :cond_2f2
    const/16 v131, 0x0

    .line 361
    const/4 v5, 0x1

    sub-int v152, v154, v5

    :goto_2f7
    if-ltz v152, :cond_338

    .line 362
    aget-byte v142, v29, v152

    .line 364
    .restart local v142       #d:B
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_306

    .line 365
    const/16 v131, 0x1

    .line 361
    :cond_303
    :goto_303
    add-int/lit8 v152, v152, -0x1

    goto :goto_2f7

    .line 366
    :cond_306
    const/4 v5, 0x5

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_317

    .line 367
    if-eqz v131, :cond_312

    .line 368
    const/4 v5, 0x3

    aput-byte v5, v29, v152

    goto :goto_303

    .line 370
    :cond_312
    const/16 v5, 0xd

    aput-byte v5, v29, v152

    goto :goto_303

    .line 373
    :cond_317
    const/16 v131, 0x0

    .line 375
    const/4 v5, 0x4

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_333

    const/4 v5, 0x7

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_333

    const/16 v5, 0xa

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_333

    const/16 v5, 0xb

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_303

    .line 379
    :cond_333
    const/16 v5, 0xd

    aput-byte v5, v29, v152

    goto :goto_303

    .line 386
    .end local v142           #d:B
    :cond_338
    move/from16 v141, v129

    .line 387
    const/16 v152, 0x0

    :goto_33c
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_360

    .line 388
    aget-byte v142, v29, v152

    .line 390
    .restart local v142       #d:B
    move/from16 v0, v142

    move/from16 v1, v129

    if-eq v0, v1, :cond_352

    if-eqz v142, :cond_352

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_354

    .line 393
    :cond_352
    move/from16 v141, v142

    .line 395
    :cond_354
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_35d

    .line 396
    const/4 v5, 0x0

    aput-byte v5, v29, v152

    .line 387
    :cond_35d
    add-int/lit8 v152, v152, 0x1

    goto :goto_33c

    .line 402
    .end local v142           #d:B
    :cond_360
    move/from16 v141, v129

    .line 403
    const/16 v152, 0x0

    :goto_364
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_3c8

    .line 404
    aget-byte v142, v29, v152

    .line 406
    .restart local v142       #d:B
    if-eqz v142, :cond_374

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_379

    .line 408
    :cond_374
    move/from16 v141, v142

    .line 403
    :goto_376
    add-int/lit8 v152, v152, 0x1

    goto :goto_364

    .line 409
    :cond_379
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_385

    const/4 v5, 0x6

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_388

    .line 411
    :cond_385
    const/16 v141, 0x0

    goto :goto_376

    .line 413
    :cond_388
    move/from16 v143, v129

    .line 416
    .local v143, dd:B
    add-int/lit8 v153, v152, 0x1

    .restart local v153       #k:I
    :goto_38c
    move/from16 v0, v153

    move/from16 v1, v154

    if-ge v0, v1, :cond_39c

    .line 417
    aget-byte v143, v29, v153

    .line 419
    if-eqz v143, :cond_39c

    const/4 v5, 0x1

    move/from16 v0, v143

    move v1, v5

    if-ne v0, v1, :cond_3af

    .line 430
    :cond_39c
    :goto_39c
    move/from16 v165, v152

    .local v165, y:I
    :goto_39e
    move/from16 v0, v165

    move/from16 v1, v153

    if-ge v0, v1, :cond_3c4

    .line 431
    move/from16 v0, v143

    move/from16 v1, v141

    if-ne v0, v1, :cond_3c1

    .line 432
    aput-byte v141, v29, v165

    .line 430
    :goto_3ac
    add-int/lit8 v165, v165, 0x1

    goto :goto_39e

    .line 423
    .end local v165           #y:I
    :cond_3af
    const/4 v5, 0x3

    move/from16 v0, v143

    move v1, v5

    if-eq v0, v1, :cond_3bb

    const/4 v5, 0x6

    move/from16 v0, v143

    move v1, v5

    if-ne v0, v1, :cond_3be

    .line 425
    :cond_3bb
    const/16 v143, 0x0

    .line 426
    goto :goto_39c

    .line 416
    :cond_3be
    add-int/lit8 v153, v153, 0x1

    goto :goto_38c

    .line 434
    .restart local v165       #y:I
    :cond_3c1
    aput-byte v129, v29, v165

    goto :goto_3ac

    .line 437
    :cond_3c4
    const/4 v5, 0x1

    sub-int v152, v153, v5

    goto :goto_376

    .line 447
    .end local v142           #d:B
    .end local v143           #dd:B
    .end local v153           #k:I
    .end local v165           #y:I
    :cond_3c8
    const/16 v152, 0x0

    :goto_3ca
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_3ee

    .line 448
    aget-char v138, v140, v152

    .line 450
    .restart local v138       #c:C
    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_3e9

    const v5, 0xd800

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_3eb

    const v5, 0xdfff

    move/from16 v0, v138

    move v1, v5

    if-gt v0, v1, :cond_3eb

    .line 451
    :cond_3e9
    aput-byte v129, v29, v152

    .line 447
    :cond_3eb
    add-int/lit8 v152, v152, 0x1

    goto :goto_3ca

    .line 456
    .end local v138           #c:C
    :cond_3ee
    const/16 v152, 0x0

    :goto_3f0
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_402

    .line 457
    aget-char v5, v140, v152

    packed-switch v5, :pswitch_data_954

    .line 456
    :goto_3fb
    add-int/lit8 v152, v152, 0x1

    goto :goto_3f0

    .line 471
    :pswitch_3fe
    const/4 v5, 0x0

    aput-byte v5, v29, v152

    goto :goto_3fb

    .line 480
    :cond_402
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v5, v0

    if-eqz v5, :cond_454

    .line 481
    move-object/from16 v0, p1

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v158, v0

    .line 482
    .local v158, sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/ReplacementSpan;

    move-object/from16 v0, v158

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v159

    check-cast v159, [Landroid/text/style/ReplacementSpan;

    .line 484
    .local v159, spans:[Landroid/text/style/ReplacementSpan;
    const/16 v165, 0x0

    .restart local v165       #y:I
    :goto_420
    move-object/from16 v0, v159

    array-length v0, v0

    move v5, v0

    move/from16 v0, v165

    move v1, v5

    if-ge v0, v1, :cond_454

    .line 485
    aget-object v5, v159, v165

    move-object/from16 v0, v158

    move-object v1, v5

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v130

    .line 486
    .local v130, a:I
    aget-object v5, v159, v165

    move-object/from16 v0, v158

    move-object v1, v5

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v134

    .line 488
    .local v134, b:I
    move/from16 v164, v130

    .local v164, x:I
    :goto_43d
    move/from16 v0, v164

    move/from16 v1, v134

    if-ge v0, v1, :cond_451

    .line 489
    sub-int v5, v164, v28

    aput-byte v129, v29, v5

    .line 490
    sub-int v5, v164, v28

    const v6, 0xfffc

    aput-char v6, v140, v5

    .line 488
    add-int/lit8 v164, v164, 0x1

    goto :goto_43d

    .line 484
    :cond_451
    add-int/lit8 v165, v165, 0x1

    goto :goto_420

    .line 497
    .end local v130           #a:I
    .end local v134           #b:I
    .end local v158           #sp:Landroid/text/Spanned;
    .end local v159           #spans:[Landroid/text/style/ReplacementSpan;
    .end local v164           #x:I
    .end local v165           #y:I
    :cond_454
    const/4 v8, 0x0

    :goto_455
    move v0, v8

    move/from16 v1, v154

    if-ge v0, v1, :cond_483

    .line 498
    aget-byte v5, v29, v8

    const/4 v6, 0x1

    if-ne v5, v6, :cond_47d

    .line 501
    move/from16 v152, v8

    :goto_461
    move/from16 v0, v152

    move/from16 v1, v154

    if-ge v0, v1, :cond_46c

    .line 502
    aget-byte v5, v29, v152

    const/4 v6, 0x1

    if-eq v5, v6, :cond_480

    .line 507
    :cond_46c
    sub-int v5, v152, v8

    move-object/from16 v0, v140

    move v1, v8

    move v2, v5

    invoke-static {v0, v1, v2}, Landroid/text/AndroidCharacter;->mirror([CII)Z

    move-result v5

    if-eqz v5, :cond_47a

    .line 508
    const/16 v133, 0x1

    .line 510
    :cond_47a
    const/4 v5, 0x1

    sub-int v8, v152, v5

    .line 497
    :cond_47d
    add-int/lit8 v8, v8, 0x1

    goto :goto_455

    .line 501
    :cond_480
    add-int/lit8 v152, v152, 0x1

    goto :goto_461

    .line 517
    .end local v129           #SOR:B
    .end local v131           #adjacent:Z
    .end local v141           #cur:B
    .end local v152           #j:I
    :cond_483
    if-eqz v133, :cond_5f2

    .line 518
    if-nez v132, :cond_5e5

    .line 519
    move-object/from16 v0, p1

    move-object/from16 v1, v140

    move/from16 v2, v28

    move/from16 v3, v145

    invoke-static {v0, v1, v2, v3}, Landroid/text/AlteredCharSequence;->make(Ljava/lang/CharSequence;[CII)Landroid/text/AlteredCharSequence;

    move-result-object v132

    .line 523
    :goto_493
    move-object/from16 v160, v132

    .line 528
    .local v160, sub:Ljava/lang/CharSequence;
    :goto_495
    move/from16 v163, v147

    .line 530
    .local v163, width:I
    const/16 v98, 0x0

    .line 531
    .local v98, w:F
    move/from16 v14, v28

    .line 533
    .local v14, here:I
    move/from16 v15, v28

    .line 534
    .local v15, ok:I
    move/from16 v40, v98

    .line 535
    .local v40, okwidth:F
    const/16 v16, 0x0

    .local v16, okascent:I
    const/16 v17, 0x0

    .local v17, okdescent:I
    const/16 v18, 0x0

    .local v18, oktop:I
    const/16 v19, 0x0

    .line 537
    .local v19, okbottom:I
    move/from16 v44, v28

    .line 538
    .local v44, fit:I
    move/from16 v69, v98

    .line 539
    .local v69, fitwidth:F
    const/16 v45, 0x0

    .local v45, fitascent:I
    const/16 v46, 0x0

    .local v46, fitdescent:I
    const/16 v47, 0x0

    .local v47, fittop:I
    const/16 v48, 0x0

    .line 541
    .local v48, fitbottom:I
    const/16 v26, 0x0

    .line 544
    .local v26, tab:Z
    move/from16 v8, v28

    :goto_4b7
    move v0, v8

    move/from16 v1, v145

    if-ge v0, v1, :cond_872

    .line 545
    if-nez v7, :cond_5f6

    .line 546
    move/from16 v9, v145

    .line 552
    .local v9, next:I
    :goto_4c0
    if-nez v7, :cond_603

    .line 553
    move-object/from16 v0, p4

    move-object/from16 v1, v160

    move v2, v8

    move v3, v9

    move-object v4, v10

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/text/TextPaint;->getTextWidths(Ljava/lang/CharSequence;II[F)I

    .line 554
    const/4 v5, 0x0

    sub-int v6, v145, v28

    sub-int v12, v8, v28

    add-int/2addr v6, v12

    sub-int v12, v9, v8

    invoke-static {v10, v5, v10, v6, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 557
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 576
    :goto_4dd
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v151, v0

    .line 577
    .local v151, fmtop:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v149, v0

    .line 578
    .local v149, fmbottom:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v148, v0

    .line 579
    .local v148, fmascent:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v150, v0

    .line 591
    .local v150, fmdescent:I
    move/from16 v152, v8

    .restart local v152       #j:I
    :goto_4f3
    move/from16 v0, v152

    move v1, v9

    if-ge v0, v1, :cond_86f

    .line 592
    sub-int v5, v152, v28

    aget-char v138, v140, v5

    .line 593
    .restart local v138       #c:C
    move/from16 v135, v98

    .line 595
    .local v135, before:F
    const/16 v5, 0xa

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_65d

    .line 635
    :goto_505
    move/from16 v0, v163

    int-to-float v0, v0

    move v5, v0

    cmpg-float v5, v98, v5

    if-gtz v5, :cond_6f2

    .line 636
    move/from16 v69, v98

    .line 637
    add-int/lit8 v44, v152, 0x1

    .line 639
    move/from16 v0, v151

    move/from16 v1, v47

    if-ge v0, v1, :cond_519

    .line 640
    move/from16 v47, v151

    .line 641
    :cond_519
    move/from16 v0, v148

    move/from16 v1, v45

    if-ge v0, v1, :cond_521

    .line 642
    move/from16 v45, v148

    .line 643
    :cond_521
    move/from16 v0, v150

    move/from16 v1, v46

    if-le v0, v1, :cond_529

    .line 644
    move/from16 v46, v150

    .line 645
    :cond_529
    move/from16 v0, v149

    move/from16 v1, v48

    if-le v0, v1, :cond_531

    .line 646
    move/from16 v48, v149

    .line 664
    :cond_531
    const/16 v5, 0x20

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_5bd

    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_5bd

    const/16 v5, 0x2e

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_55b

    const/16 v5, 0x2c

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_55b

    const/16 v5, 0x3a

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_55b

    const/16 v5, 0x3b

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_57d

    :cond_55b
    const/4 v5, 0x1

    sub-int v5, v152, v5

    if-lt v5, v14, :cond_56d

    const/4 v5, 0x1

    sub-int v5, v152, v5

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-nez v5, :cond_57d

    :cond_56d
    add-int/lit8 v5, v152, 0x1

    if-ge v5, v9, :cond_5bd

    add-int/lit8 v5, v152, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-eqz v5, :cond_5bd

    :cond_57d
    const/16 v5, 0x2f

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_58b

    const/16 v5, 0x2d

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_59b

    :cond_58b
    add-int/lit8 v5, v152, 0x1

    if-ge v5, v9, :cond_5bd

    add-int/lit8 v5, v152, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-eqz v5, :cond_5bd

    :cond_59b
    const/16 v5, 0x2e80

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_5e1

    const/4 v5, 0x1

    move/from16 v0, v138

    move v1, v5

    invoke-static {v0, v1}, Landroid/text/StaticLayout;->isIdeographic(CZ)Z

    move-result v5

    if-eqz v5, :cond_5e1

    add-int/lit8 v5, v152, 0x1

    if-ge v5, v9, :cond_5e1

    add-int/lit8 v5, v152, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    const/4 v6, 0x0

    invoke-static {v5, v6}, Landroid/text/StaticLayout;->isIdeographic(CZ)Z

    move-result v5

    if-eqz v5, :cond_5e1

    .line 672
    :cond_5bd
    move/from16 v40, v98

    .line 673
    add-int/lit8 v15, v152, 0x1

    .line 675
    move/from16 v0, v47

    move/from16 v1, v18

    if-ge v0, v1, :cond_5c9

    .line 676
    move/from16 v18, v47

    .line 677
    :cond_5c9
    move/from16 v0, v45

    move/from16 v1, v16

    if-ge v0, v1, :cond_5d1

    .line 678
    move/from16 v16, v45

    .line 679
    :cond_5d1
    move/from16 v0, v46

    move/from16 v1, v17

    if-le v0, v1, :cond_5d9

    .line 680
    move/from16 v17, v46

    .line 681
    :cond_5d9
    move/from16 v0, v48

    move/from16 v1, v19

    if-le v0, v1, :cond_5e1

    .line 682
    move/from16 v19, v48

    .line 591
    :cond_5e1
    :goto_5e1
    add-int/lit8 v152, v152, 0x1

    goto/16 :goto_4f3

    .line 521
    .end local v9           #next:I
    .end local v14           #here:I
    .end local v15           #ok:I
    .end local v16           #okascent:I
    .end local v17           #okdescent:I
    .end local v18           #oktop:I
    .end local v19           #okbottom:I
    .end local v26           #tab:Z
    .end local v40           #okwidth:F
    .end local v44           #fit:I
    .end local v45           #fitascent:I
    .end local v46           #fitdescent:I
    .end local v47           #fittop:I
    .end local v48           #fitbottom:I
    .end local v69           #fitwidth:F
    .end local v98           #w:F
    .end local v135           #before:F
    .end local v138           #c:C
    .end local v148           #fmascent:I
    .end local v149           #fmbottom:I
    .end local v150           #fmdescent:I
    .end local v151           #fmtop:I
    .end local v152           #j:I
    .end local v160           #sub:Ljava/lang/CharSequence;
    .end local v163           #width:I
    :cond_5e5
    move-object/from16 v0, v132

    move-object/from16 v1, v140

    move/from16 v2, v28

    move/from16 v3, v145

    invoke-virtual {v0, v1, v2, v3}, Landroid/text/AlteredCharSequence;->update([CII)V

    goto/16 :goto_493

    .line 525
    :cond_5f2
    move-object/from16 v160, p1

    .restart local v160       #sub:Ljava/lang/CharSequence;
    goto/16 :goto_495

    .line 548
    .restart local v14       #here:I
    .restart local v15       #ok:I
    .restart local v16       #okascent:I
    .restart local v17       #okdescent:I
    .restart local v18       #oktop:I
    .restart local v19       #okbottom:I
    .restart local v26       #tab:Z
    .restart local v40       #okwidth:F
    .restart local v44       #fit:I
    .restart local v45       #fitascent:I
    .restart local v46       #fitdescent:I
    .restart local v47       #fittop:I
    .restart local v48       #fitbottom:I
    .restart local v69       #fitwidth:F
    .restart local v98       #w:F
    .restart local v163       #width:I
    :cond_5f6
    const-class v5, Landroid/text/style/MetricAffectingSpan;

    move-object v0, v7

    move v1, v8

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v9

    .restart local v9       #next:I
    goto/16 :goto_4c0

    .line 559
    :cond_603
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v5, v0

    const/4 v6, 0x0

    iput v6, v5, Landroid/text/TextPaint;->baselineShift:I

    .line 561
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    move-object/from16 v5, p4

    invoke-static/range {v5 .. v11}, Landroid/text/Styled;->getTextWidths(Landroid/text/TextPaint;Landroid/text/TextPaint;Landroid/text/Spanned;II[FLandroid/graphics/Paint$FontMetricsInt;)I

    .line 564
    const/4 v5, 0x0

    sub-int v6, v145, v28

    sub-int v12, v8, v28

    add-int/2addr v6, v12

    sub-int v12, v9, v8

    invoke-static {v10, v5, v10, v6, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 567
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v5, v0

    iget v5, v5, Landroid/text/TextPaint;->baselineShift:I

    if-gez v5, :cond_643

    .line 568
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 569
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->top:I

    goto/16 :goto_4dd

    .line 571
    :cond_643
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 572
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    goto/16 :goto_4dd

    .line 597
    .restart local v135       #before:F
    .restart local v138       #c:C
    .restart local v148       #fmascent:I
    .restart local v149       #fmbottom:I
    .restart local v150       #fmdescent:I
    .restart local v151       #fmtop:I
    .restart local v152       #j:I
    :cond_65d
    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_676

    .line 598
    const/4 v5, 0x0

    move-object/from16 v0, v160

    move/from16 v1, v28

    move/from16 v2, v145

    move/from16 v3, v98

    move-object v4, v5

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F

    move-result v98

    .line 599
    const/16 v26, 0x1

    goto/16 :goto_505

    .line 600
    :cond_676
    const v5, 0xd800

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_6e7

    const v5, 0xdfff

    move/from16 v0, v138

    move v1, v5

    if-gt v0, v1, :cond_6e7

    add-int/lit8 v5, v152, 0x1

    if-ge v5, v9, :cond_6e7

    .line 601
    sub-int v5, v152, v28

    move-object/from16 v0, v140

    move v1, v5

    invoke-static {v0, v1}, Ljava/lang/Character;->codePointAt([CI)I

    move-result v144

    .line 603
    .local v144, emoji:I
    sget v5, Landroid/text/StaticLayout;->MIN_EMOJI:I

    move/from16 v0, v144

    move v1, v5

    if-lt v0, v1, :cond_6dc

    sget v5, Landroid/text/StaticLayout;->MAX_EMOJI:I

    move/from16 v0, v144

    move v1, v5

    if-gt v0, v1, :cond_6dc

    .line 604
    sget-object v5, Landroid/text/StaticLayout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    move-object v0, v5

    move/from16 v1, v144

    invoke-virtual {v0, v1}, Landroid/emoji/EmojiFactory;->getBitmapFromAndroidPua(I)Landroid/graphics/Bitmap;

    move-result-object v136

    .line 607
    .local v136, bm:Landroid/graphics/Bitmap;
    if-eqz v136, :cond_6d1

    .line 610
    if-nez v7, :cond_6ca

    .line 611
    move-object/from16 v161, p4

    .line 616
    .local v161, whichPaint:Landroid/graphics/Paint;
    :goto_6b0
    invoke-virtual/range {v136 .. v136}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    int-to-float v5, v5

    invoke-virtual/range {v161 .. v161}, Landroid/graphics/Paint;->ascent()F

    move-result v6

    neg-float v6, v6

    mul-float/2addr v5, v6

    invoke-virtual/range {v136 .. v136}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    int-to-float v6, v6

    div-float v162, v5, v6

    .line 620
    .local v162, wid:F
    add-float v98, v98, v162

    .line 621
    const/16 v26, 0x1

    .line 622
    add-int/lit8 v152, v152, 0x1

    .line 623
    goto/16 :goto_505

    .line 613
    .end local v161           #whichPaint:Landroid/graphics/Paint;
    .end local v162           #wid:F
    :cond_6ca
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v161, v0

    .restart local v161       #whichPaint:Landroid/graphics/Paint;
    goto :goto_6b0

    .line 624
    .end local v161           #whichPaint:Landroid/graphics/Paint;
    :cond_6d1
    sub-int v5, v152, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_505

    .line 627
    .end local v136           #bm:Landroid/graphics/Bitmap;
    :cond_6dc
    sub-int v5, v152, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_505

    .line 630
    .end local v144           #emoji:I
    :cond_6e7
    sub-int v5, v152, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_505

    .line 684
    :cond_6f2
    if-eqz p11, :cond_756

    .line 685
    if-eq v15, v14, :cond_730

    .line 688
    :goto_6f6
    if-ge v15, v9, :cond_703

    sub-int v5, v15, v28

    aget-char v5, v140, v5

    const/16 v6, 0x20

    if-ne v5, v6, :cond_703

    .line 689
    add-int/lit8 v15, v15, 0x1

    goto :goto_6f6

    .line 692
    :cond_703
    move v0, v15

    move/from16 v1, p3

    if-ne v0, v1, :cond_72c

    const/4 v5, 0x1

    move/from16 v32, v5

    :goto_70b
    sub-int v37, v145, v28

    move-object/from16 v12, p0

    move-object/from16 v13, p1

    move/from16 v21, p7

    move/from16 v22, p8

    move-object/from16 v25, v11

    move/from16 v33, p9

    move/from16 v34, p10

    move-object/from16 v35, v10

    move/from16 v36, v28

    move-object/from16 v38, p13

    move/from16 v39, p12

    move-object/from16 v41, p4

    invoke-direct/range {v12 .. v41}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 704
    move v14, v15

    goto/16 :goto_5e1

    .line 692
    :cond_72c
    const/4 v5, 0x0

    move/from16 v32, v5

    goto :goto_70b

    .line 708
    :cond_730
    move/from16 v69, v98

    .line 709
    add-int/lit8 v44, v152, 0x1

    .line 711
    move/from16 v0, v151

    move/from16 v1, v47

    if-ge v0, v1, :cond_73c

    .line 712
    move/from16 v47, v151

    .line 713
    :cond_73c
    move/from16 v0, v148

    move/from16 v1, v45

    if-ge v0, v1, :cond_744

    .line 714
    move/from16 v45, v148

    .line 715
    :cond_744
    move/from16 v0, v150

    move/from16 v1, v46

    if-le v0, v1, :cond_74c

    .line 716
    move/from16 v46, v150

    .line 717
    :cond_74c
    move/from16 v0, v149

    move/from16 v1, v48

    if-le v0, v1, :cond_5e1

    .line 718
    move/from16 v48, v149

    goto/16 :goto_5e1

    .line 721
    :cond_756
    if-eq v15, v14, :cond_7ae

    .line 724
    :goto_758
    if-ge v15, v9, :cond_765

    sub-int v5, v15, v28

    aget-char v5, v140, v5

    const/16 v6, 0x20

    if-ne v5, v6, :cond_765

    .line 725
    add-int/lit8 v15, v15, 0x1

    goto :goto_758

    .line 728
    :cond_765
    move v0, v15

    move/from16 v1, p3

    if-ne v0, v1, :cond_7aa

    const/4 v5, 0x1

    move/from16 v32, v5

    :goto_76d
    sub-int v37, v145, v28

    move-object/from16 v12, p0

    move-object/from16 v13, p1

    move/from16 v21, p7

    move/from16 v22, p8

    move-object/from16 v25, v11

    move/from16 v33, p9

    move/from16 v34, p10

    move-object/from16 v35, v10

    move/from16 v36, v28

    move-object/from16 v38, p13

    move/from16 v39, p12

    move-object/from16 v41, p4

    invoke-direct/range {v12 .. v41}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 740
    move v14, v15

    .line 780
    .end local v98           #w:F
    :goto_78c
    if-ge v14, v8, :cond_86a

    .line 781
    move v9, v14

    move/from16 v152, v14

    .line 786
    :goto_791
    move/from16 v44, v14

    move v15, v14

    .line 787
    const/16 v98, 0x0

    .line 788
    .restart local v98       #w:F
    const/16 v48, 0x0

    move/from16 v47, v48

    move/from16 v46, v48

    move/from16 v45, v48

    .line 789
    const/16 v19, 0x0

    move/from16 v18, v19

    move/from16 v17, v19

    move/from16 v16, v19

    .line 791
    move/from16 v163, v157

    goto/16 :goto_5e1

    .line 728
    :cond_7aa
    const/4 v5, 0x0

    move/from16 v32, v5

    goto :goto_76d

    .line 741
    :cond_7ae
    move/from16 v0, v44

    move v1, v14

    if-eq v0, v1, :cond_7f5

    .line 743
    move/from16 v0, v44

    move/from16 v1, p3

    if-ne v0, v1, :cond_7f1

    const/4 v5, 0x1

    move/from16 v61, v5

    :goto_7bc
    sub-int v66, v145, v28

    move-object/from16 v41, p0

    move-object/from16 v42, p1

    move/from16 v43, v14

    move/from16 v49, v20

    move/from16 v50, p7

    move/from16 v51, p8

    move-object/from16 v52, v23

    move-object/from16 v53, v24

    move-object/from16 v54, v11

    move/from16 v55, v26

    move/from16 v56, v27

    move/from16 v57, v28

    move-object/from16 v58, v29

    move/from16 v59, v30

    move/from16 v60, v31

    move/from16 v62, p9

    move/from16 v63, p10

    move-object/from16 v64, v10

    move/from16 v65, v28

    move-object/from16 v67, p13

    move/from16 v68, p12

    move-object/from16 v70, p4

    invoke-direct/range {v41 .. v70}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 756
    move/from16 v14, v44

    goto :goto_78c

    .line 743
    :cond_7f1
    const/4 v5, 0x0

    move/from16 v61, v5

    goto :goto_7bc

    .line 759
    :cond_7f5
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v33, v0

    add-int/lit8 v36, v14, 0x1

    const/16 v39, 0x0

    move-object/from16 v32, p4

    move-object/from16 v34, p1

    move/from16 v35, v14

    move-object/from16 v37, v11

    move/from16 v38, v26

    invoke-static/range {v32 .. v39}, Landroid/text/StaticLayout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    .line 763
    add-int/lit8 v73, v14, 0x1

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v74, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v75, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v76, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v77, v0

    add-int/lit8 v5, v14, 0x1

    move v0, v5

    move/from16 v1, p3

    if-ne v0, v1, :cond_866

    const/4 v5, 0x1

    move/from16 v90, v5

    :goto_82c
    sub-int v95, v145, v28

    sub-int v5, v14, v28

    aget v98, v10, v5

    .end local v98           #w:F
    move-object/from16 v70, p0

    move-object/from16 v71, p1

    move/from16 v72, v14

    move/from16 v78, v20

    move/from16 v79, p7

    move/from16 v80, p8

    move-object/from16 v81, v23

    move-object/from16 v82, v24

    move-object/from16 v83, v11

    move/from16 v84, v26

    move/from16 v85, v27

    move/from16 v86, v28

    move-object/from16 v87, v29

    move/from16 v88, v30

    move/from16 v89, v31

    move/from16 v91, p9

    move/from16 v92, p10

    move-object/from16 v93, v10

    move/from16 v94, v28

    move-object/from16 v96, p13

    move/from16 v97, p12

    move-object/from16 v99, p4

    invoke-direct/range {v70 .. v99}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 777
    add-int/lit8 v14, v14, 0x1

    goto/16 :goto_78c

    .line 763
    .restart local v98       #w:F
    :cond_866
    const/4 v5, 0x0

    move/from16 v90, v5

    goto :goto_82c

    .line 783
    .end local v98           #w:F
    :cond_86a
    const/4 v5, 0x1

    sub-int v152, v14, v5

    goto/16 :goto_791

    .line 544
    .end local v135           #before:F
    .end local v138           #c:C
    .restart local v98       #w:F
    :cond_86f
    move v8, v9

    goto/16 :goto_4b7

    .line 796
    .end local v9           #next:I
    .end local v148           #fmascent:I
    .end local v149           #fmbottom:I
    .end local v150           #fmdescent:I
    .end local v151           #fmtop:I
    .end local v152           #j:I
    :cond_872
    move/from16 v0, v145

    move v1, v14

    if-eq v0, v1, :cond_8de

    .line 797
    or-int v5, v47, v48

    or-int v5, v5, v46

    or-int v5, v5, v45

    if-nez v5, :cond_899

    .line 798
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 800
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v47, v0

    .line 801
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v48, v0

    .line 802
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v45, v0

    .line 803
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v46, v0

    .line 808
    :cond_899
    move/from16 v0, v145

    move/from16 v1, p3

    if-ne v0, v1, :cond_94b

    const/4 v5, 0x1

    move/from16 v90, v5

    :goto_8a2
    sub-int v95, v145, v28

    move-object/from16 v70, p0

    move-object/from16 v71, p1

    move/from16 v72, v14

    move/from16 v73, v145

    move/from16 v74, v45

    move/from16 v75, v46

    move/from16 v76, v47

    move/from16 v77, v48

    move/from16 v78, v20

    move/from16 v79, p7

    move/from16 v80, p8

    move-object/from16 v81, v23

    move-object/from16 v82, v24

    move-object/from16 v83, v11

    move/from16 v84, v26

    move/from16 v85, v27

    move/from16 v86, v28

    move-object/from16 v87, v29

    move/from16 v88, v30

    move/from16 v89, v31

    move/from16 v91, p9

    move/from16 v92, p10

    move-object/from16 v93, v10

    move/from16 v94, v28

    move-object/from16 v96, p13

    move/from16 v97, p12

    move-object/from16 v99, p4

    invoke-direct/range {v70 .. v99}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 820
    :cond_8de
    move/from16 v28, v145

    .line 822
    move/from16 v0, v145

    move/from16 v1, p3

    if-ne v0, v1, :cond_950

    .line 826
    .end local v8           #i:I
    .end local v14           #here:I
    .end local v15           #ok:I
    .end local v16           #okascent:I
    .end local v17           #okdescent:I
    .end local v18           #oktop:I
    .end local v19           #okbottom:I
    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    .end local v26           #tab:Z
    .end local v30           #dir:I
    .end local v31           #easy:Z
    .end local v40           #okwidth:F
    .end local v44           #fit:I
    .end local v45           #fitascent:I
    .end local v46           #fitdescent:I
    .end local v47           #fittop:I
    .end local v48           #fitbottom:I
    .end local v69           #fitwidth:F
    .end local v98           #w:F
    .end local v133           #altered:Z
    .end local v147           #firstwidth:I
    .end local v154           #n:I
    .end local v157           #restwidth:I
    .end local v160           #sub:Ljava/lang/CharSequence;
    .end local v163           #width:I
    :cond_8e6
    move/from16 v0, p3

    move/from16 v1, p2

    if-eq v0, v1, :cond_8fa

    const/4 v5, 0x1

    sub-int v5, p3, v5

    move-object/from16 v0, p1

    move v1, v5

    invoke-interface {v0, v1}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v5

    const/16 v6, 0xa

    if-ne v5, v6, :cond_94a

    .line 829
    :cond_8fa
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 831
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v103, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v104, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v105, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v106, v0

    const/16 v110, 0x0

    const/16 v111, 0x0

    const/16 v113, 0x0

    const/16 v118, 0x1

    const/16 v119, 0x1

    const/16 v124, 0x0

    const/16 v127, 0x0

    move-object/from16 v99, p0

    move-object/from16 v100, p1

    move/from16 v101, p3

    move/from16 v102, p3

    move/from16 v107, v20

    move/from16 v108, p7

    move/from16 v109, p8

    move-object/from16 v112, v11

    move/from16 v114, v27

    move/from16 v115, p3

    move-object/from16 v116, v29

    move/from16 v120, p9

    move/from16 v121, p10

    move-object/from16 v122, v10

    move/from16 v123, p2

    move-object/from16 v125, p13

    move/from16 v126, p12

    move-object/from16 v128, p4

    invoke-direct/range {v99 .. v128}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 842
    :cond_94a
    return-void

    .line 808
    .restart local v8       #i:I
    .restart local v14       #here:I
    .restart local v15       #ok:I
    .restart local v16       #okascent:I
    .restart local v17       #okdescent:I
    .restart local v18       #oktop:I
    .restart local v19       #okbottom:I
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    .restart local v26       #tab:Z
    .restart local v30       #dir:I
    .restart local v31       #easy:Z
    .restart local v40       #okwidth:F
    .restart local v44       #fit:I
    .restart local v45       #fitascent:I
    .restart local v46       #fitdescent:I
    .restart local v47       #fittop:I
    .restart local v48       #fitbottom:I
    .restart local v69       #fitwidth:F
    .restart local v98       #w:F
    .restart local v133       #altered:Z
    .restart local v147       #firstwidth:I
    .restart local v154       #n:I
    .restart local v157       #restwidth:I
    .restart local v160       #sub:Ljava/lang/CharSequence;
    .restart local v163       #width:I
    :cond_94b
    const/4 v5, 0x0

    move/from16 v90, v5

    goto/16 :goto_8a2

    .line 153
    :cond_950
    move/from16 v28, v145

    goto/16 :goto_86

    .line 457
    :pswitch_data_954
    .packed-switch 0x2b
        :pswitch_3fe
    .end packed-switch
.end method

.method public getBottomPadding()I
    .registers 2

    .prologue
    .line 1262
    iget v0, p0, Landroid/text/StaticLayout;->mBottomPadding:I

    return v0
.end method

.method public getEllipsisCount(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1267
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    const/4 v1, 0x5

    if-ge v0, v1, :cond_7

    .line 1268
    const/4 v0, 0x0

    .line 1271
    :goto_6
    return v0

    :cond_7
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x4

    aget v0, v0, v1

    goto :goto_6
.end method

.method public getEllipsisStart(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1276
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    const/4 v1, 0x5

    if-ge v0, v1, :cond_7

    .line 1277
    const/4 v0, 0x0

    .line 1280
    :goto_6
    return v0

    :cond_7
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x3

    aget v0, v0, v1

    goto :goto_6
.end method

.method public getEllipsizedWidth()I
    .registers 2

    .prologue
    .line 1285
    iget v0, p0, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    return v0
.end method

.method public getLineContainsTab(I)Z
    .registers 4
    .parameter "line"

    .prologue
    .line 1250
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x0

    aget v0, v0, v1

    const/high16 v1, 0x2000

    and-int/2addr v0, v1

    if-eqz v0, :cond_10

    const/4 v0, 0x1

    :goto_f
    return v0

    :cond_10
    const/4 v0, 0x0

    goto :goto_f
.end method

.method public getLineCount()I
    .registers 2

    .prologue
    .line 1229
    iget v0, p0, Landroid/text/StaticLayout;->mLineCount:I

    return v0
.end method

.method public getLineDescent(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1237
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x2

    aget v0, v0, v1

    return v0
.end method

.method public final getLineDirections(I)Landroid/text/Layout$Directions;
    .registers 3
    .parameter "line"

    .prologue
    .line 1254
    iget-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    aget-object v0, v0, p1

    return-object v0
.end method

.method public getLineForVertical(I)I
    .registers 8
    .parameter "vertical"

    .prologue
    .line 1209
    iget v1, p0, Landroid/text/StaticLayout;->mLineCount:I

    .line 1210
    .local v1, high:I
    const/4 v3, -0x1

    .line 1212
    .local v3, low:I
    iget-object v2, p0, Landroid/text/StaticLayout;->mLines:[I

    .line 1213
    .local v2, lines:[I
    :goto_5
    sub-int v4, v1, v3

    const/4 v5, 0x1

    if-le v4, v5, :cond_1b

    .line 1214
    add-int v4, v1, v3

    shr-int/lit8 v0, v4, 0x1

    .line 1215
    .local v0, guess:I
    iget v4, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v4, v0

    add-int/lit8 v4, v4, 0x1

    aget v4, v2, v4

    if-le v4, p1, :cond_19

    .line 1216
    move v1, v0

    goto :goto_5

    .line 1218
    :cond_19
    move v3, v0

    goto :goto_5

    .line 1221
    .end local v0           #guess:I
    :cond_1b
    if-gez v3, :cond_1f

    .line 1222
    const/4 v4, 0x0

    .line 1224
    :goto_1e
    return v4

    :cond_1f
    move v4, v3

    goto :goto_1e
.end method

.method public getLineStart(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1241
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x0

    aget v0, v0, v1

    const v1, 0x1fffffff

    and-int/2addr v0, v1

    return v0
.end method

.method public getLineTop(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1233
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x1

    aget v0, v0, v1

    return v0
.end method

.method public getParagraphDirection(I)I
    .registers 3
    .parameter "line"

    .prologue
    .line 1246
    iget-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    aget-object v0, v0, p1

    invoke-virtual {v0}, Landroid/text/Layout$Directions;->hasRTL()Z

    move-result v0

    if-eqz v0, :cond_c

    const/4 v0, -0x1

    :goto_b
    return v0

    :cond_c
    const/4 v0, 0x1

    goto :goto_b
.end method

.method public getTopPadding()I
    .registers 2

    .prologue
    .line 1258
    iget v0, p0, Landroid/text/StaticLayout;->mTopPadding:I

    return v0
.end method
